Virtualization layers, including hypervisors, provide virtual execution environments to virtual machines. A virtualization layer essentially provides a virtual machine interface above the hardware layer of a computer system. Among many functionalities provided by a virtualization layer, a virtualization layer allocates hardware resources to virtual machines. For example, a virtualization layer associates processes and threads running within a virtual machine with one or more hardware CPUs and schedules execution of the threads and processes on the assigned hardware CPUs in order to provide instruction-execution bandwidth to the virtual machine. Similarly, the virtualization layer allocates memory, data storage, and networking bandwidth to the virtual machines by partitioning memory, data-storage, and computational resources among the virtual machines. When the aggregate demand for one or more computational resources made by the virtual machines does not exceed a threshold percentage of the computational resources available from the computer-system hardware, the virtualization layer can provide optimal or near-optimal resource allocation on behalf of the virtual machines and the virtualized computer system can provide optimal or near-optimal computational throughput to virtual machines and processes and threads executing within virtual machines. However, when the aggregate demand for one or more computational resources approaches a threshold percentage of available hardware resources, the computational throughput for the executing virtual machines may become sub-optimal, the computational throughput for individual virtual machines may become unpredictable and sub-optimal, and virtualized-computer-system operational characteristics may become unstable. Non-optimal, unpredictable, and unstable behavior can be, to some extent, avoided by careful system monitoring and administration, but system administrators, designers, manufacturers, and vendors of virtualization layers, and designers, manufacturers, and vendors of computer systems, in general, continue to seek methods and systems that are less prone to non-optimal, unpredictable, and unstable operation.